﻿#include "sht20.h"



void MainWindow::sht20_Init()
{

    fd=open("/dev/sht2x",O_RDWR);

    if(fd<0)

    {
        printf("App:Open dev failed.\n");

//            goto END;

    }

}
void MainWindow::read_Sht20_data()
{
    char buf[50];
    static int now = 0;
    unsigned char tmp[5];
    unsigned short tempori,humiori;//温湿度原始数据

    static int temp_max=0,humi_max=0;


        if(read(fd,tmp,5)>0)
        {
            // for(int i=0;i<4;i++)
            // {
            // printf("%.2x ",tmp[i]);//打印收到的数据
            // }
            // printf("\n");

            tempori=(tmp[0]<<8|tmp[1]);
            humiori=(tmp[2]<<8|tmp[3]);

            temp=-46.85+175.72/65536*(float)tempori;
            humi=-6.0  +125.0 /65536*(float)humiori;

            printf("SHT2x-T:%f RH:%f%%\n",temp,humi);

            ui->label_8->setText(QString::number(temp,'f',2));
            ui->label_9->setText(QString::number(humi,'f',2));


            if(show_temp_humi)
            {
                now_time++;
                dataCustomPlot->graph(0)->addData(now_time, temp);         //addData(double key, double value);原型
                dataCustomPlot->graph(1)->addData(now_time, humi);

//                if(humi_max<humi)
//                {
//                    humi_max = humi;
//                    dataCustomPlot->yAxis->setRange(0, humi_max);   //  设置y轴数据范围
//                }



                dataCustomPlot->replot();
            }


//            if(temp_max<temp)
//            {
//                temp_max = temp;
//            }
//            if(humi_max<humi)
//            {
//                humi_max = humi;
//            }

//            ui->label_7->setText(QString::number(temp_max,'f',2)+"℃");
//            ui->label_9->setText(QString::number(humi_max,'f',2)+"%");


//            if(22.0<temp && temp<26.0)
//            {
//                if(40.0<humi && humi<70.0)
//                {
//                     ui->label_10->setStyleSheet("color:black");
//                    ui->label_10->setText("环境舒适");
//                }
//                else if(humi<40.0)
//                {
//                    ui->label_10->setStyleSheet("color:red");
//                    ui->label_10->setText("环境干燥");
//                }
//                else if(humi>70.0)
//                {
//                    ui->label_10->setStyleSheet("color:red");
//                    ui->label_10->setText("环境潮湿");
//                }
//            }
//            else if(temp<22.0)
//            {
//                ui->label_10->setStyleSheet("color:red");
//                ui->label_10->setText("环境温度低");
//            }
//            else if(temp>26.0)
//            {
//                ui->label_10->setStyleSheet("color:red");
//                ui->label_10->setText("环境温度高");
//            }

//            qDebug() << temp;
        }

//        now++;
//        dataCustomPlot->graph(0)->addData(now, temp);         //addData(double key, double value);原型
//        dataCustomPlot->graph(1)->addData(now, humi);         //addData(double key, double value);原型

//        dataCustomPlot->replot();

}
